Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / settings / NotificationSoundSettings.vue

Displaying Raw • Download


meshchatx/src/frontend/components/settings/NotificationSoundSettings.vue 9c739fa940d1bcaefcd5de9a3b461762a7200103 (9c739fa9) Text, 11.82 KB

T8b949e<!-- SPDX-License-Identifier: 0BSD AND MIT -->

Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72section Te6edf3v-showTff7b72=Ta5d6ff"Te6edf3showSectionTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"settings-section break-inside-avoid"Tb4b4b4>
Tb4b4b4<Tff7b72header Te6edf3classTff7b72=Ta5d6ff"settings-section__header"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"settings-section__eyebrow"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notifications"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h2Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_settings"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72h2Tb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_settings_description"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72headerTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"settings-section__body space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"rounded-2xl border border-gray-200 dark:border-zinc-800 bg-white/70 dark:bg-zinc-900/70 px-3 py-3"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-start justify-between gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"min-w-0 flex-1 space-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-gray-900 dark:text-white"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.enable_notification_sound"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-600 dark:text-gray-300 leading-relaxed"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.enable_notification_sound_description"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72Toggle
Te6edf3idTff7b72=Ta5d6ff"notification-sound-enabled"
Te6edf3classTff7b72=Ta5d6ff"shrink-0 mt-0.5"
Tb4b4b4:Te6edf3model-valueTff7b72=Ta5d6ff"Te6edf3configTb4b4b4.Te6edf3notification_sound_enabledTa5d6ff"
Tb4b4b4@Te6edf3updateTb4b4b4:Te6edf3model-valueTff7b72=Ta5d6ff"Te6edf3onEnabledChangeTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3configTb4b4b4.Te6edf3notification_sound_enabledTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between mb-2"Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-gray-700 dark:text-zinc-300"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_volume"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs font-mono text-gray-400"Tb4b4b4>Tff7b72{{ Te6edf3configTb4b4b4.Te6edf3notification_sound_volume Tff7b72}}%Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72input
Tb4b4b4:Te6edf3valueTff7b72=Ta5d6ff"Te6edf3configTb4b4b4.Te6edf3notification_sound_volumeTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"range"
Te6edf3minTff7b72=Ta5d6ff"0"
Te6edf3maxTff7b72=Ta5d6ff"100"
Te6edf3classTff7b72=Ta5d6ff"w-full h-1.5 bg-gray-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-blue-600"
Tb4b4b4@Te6edf3inputTff7b72=Ta5d6ff"Te6edf3onVolumeChangeTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-gray-700 dark:text-zinc-300"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_default"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72select
Tb4b4b4:Te6edf3valueTff7b72=Ta5d6ff"Te6edf3configTb4b4b4.Te6edf3notification_sound_preferred_idTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"input-field py-1.5! px-3! text-sm! rounded-xl! border-gray-200! dark:border-zinc-800! w-full max-w-md"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3onPreferredChangeTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72option Tb4b4b4:Te6edf3valueTff7b72=Ta5d6ff"T79c0ff0Ta5d6ff"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_primary_default"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3sound Tff7b72in Te6edf3soundsTa5d6ff" Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3soundTb4b4b4.Te6edf3idTa5d6ff" Tb4b4b4:Te6edf3valueTff7b72=Ta5d6ff"Te6edf3soundTb4b4b4.Te6edf3idTa5d6ff"Tb4b4b4>
Tff7b72{{ Te6edf3soundTb4b4b4.Te6edf3display_name Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between"Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold text-gray-700 dark:text-zinc-300"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sounds"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"text-xs font-bold text-blue-600 dark:text-blue-400 hover:underline flex items-center gap-1"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3isUploadingTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3$refsTb4b4b4.Te6edf3soundUploadTb4b4b4.Te6edf3clickTb4b4b4(Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"plus" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3isUploading Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_uploading"Tb4b4b4) Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_upload"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3refTff7b72=Ta5d6ff"soundUpload"
Te6edf3typeTff7b72=Ta5d6ff"file"
Te6edf3acceptTff7b72=Ta5d6ff".mp3,.ogg,.wav,.m4a,.flac,audio/*"
Te6edf3classTff7b72=Ta5d6ff"hidden"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3uploadSoundTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72p Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3soundsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-500 dark:text-zinc-400"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_none_uploaded"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3v-else Te6edf3classTff7b72=Ta5d6ff"grid gap-3"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3sound Tff7b72in Te6edf3soundsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3soundTb4b4b4.Te6edf3idTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between gap-3 rounded-xl border border-gray-200 dark:border-zinc-800 px-3 py-2"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"min-w-0 flex-1"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm font-semibold truncate"Tb4b4b4>Tff7b72{{ Te6edf3soundTb4b4b4.Te6edf3display_name Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3soundTb4b4b4.Te6edf3is_primaryTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"text-xs text-blue-600 dark:text-blue-400"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_primary"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-2 shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg p-1.5 text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-800"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'app.notification_sound_preview'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3previewSoundTb4b4b4(Te6edf3soundTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Tb4b4b4:Te6edf3icon-nameTff7b72=Ta5d6ff"Te6edf3playingSoundId Tff7b72=== Te6edf3soundTb4b4b4.Te6edf3id Tff7b72? Ta5d6ff'stop' Tff7b72: Ta5d6ff'play'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"size-4"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Tff7b72!Te6edf3soundTb4b4b4.Te6edf3is_primaryTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg px-2 py-1 text-xs font-semibold text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3setPrimarySoundTb4b4b4(Te6edf3soundTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_set_primary"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg p-1.5 text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'app.notification_sound_remove'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3deleteSoundTb4b4b4(Te6edf3soundTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"delete" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72sectionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>

Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3Toggle Tff7b72from Ta5d6ff"../forms/Toggle.vue"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72import Te6edf3NotificationSoundUtils Tff7b72from Ta5d6ff"../../js/NotificationSoundUtils"Tb4b4b4;

Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"NotificationSoundSettings"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Te6edf3ToggleTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3propsTff7b72: Tb4b4b4{
Te6edf3configTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657ObjectTb4b4b4,
Te6edf3requiredTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3showSectionTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657BooleanTb4b4b4,
Tff7b72defaultTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3updateConfigTff7b72: Tb4b4b4{
Te6edf3typeTff7b72: Tffa657FunctionTb4b4b4,
Te6edf3requiredTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3emitsTff7b72: Tb4b4b4[Ta5d6ff"sounds-changed"Tb4b4b4]Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3soundsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3isUploadingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3playingSoundIdTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loadSoundsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Tff7b72async Te6edf3loadSoundsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/notification-sounds"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3sounds Tff7b72= Te6edf3responseTb4b4b4.Te6edf3data Tff7b72?? Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to load notification sounds:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3sounds Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3onEnabledChangeTb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3updateConfigTb4b4b4(Tb4b4b4{ Te6edf3notification_sound_enabledTff7b72: Te6edf3value Tb4b4b4}Tb4b4b4, Ta5d6ff"notification_sound_enabled"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onVolumeChangeTb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3value Tff7b72= Tffa657NumberTb4b4b4(Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3valueTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3updateConfigTb4b4b4(Tb4b4b4{ Te6edf3notification_sound_volumeTff7b72: Te6edf3value Tb4b4b4}Tb4b4b4, Ta5d6ff"notification_sound_volume"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3onPreferredChangeTb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3value Tff7b72= Tffa657NumberTb4b4b4(Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3valueTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3updateConfigTb4b4b4(Tb4b4b4{ Te6edf3notification_sound_preferred_idTff7b72: Te6edf3value Tb4b4b4}Tb4b4b4, Ta5d6ff"notification_sound_preferred_id"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3uploadSoundTb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3file Tff7b72= Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3filesTff7b72?Tb4b4b4.Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fileTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72thisTb4b4b4.Te6edf3isUploading Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72const Te6edf3formData Tff7b72= Tff7b72new Te6edf3FormDataTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3formDataTb4b4b4.Te6edf3appendTb4b4b4(Ta5d6ff"file"Tb4b4b4, Te6edf3fileTb4b4b4)Tb4b4b4;

Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/notification-sounds/upload"Tb4b4b4, Te6edf3formDataTb4b4b4, Tb4b4b4{
Te6edf3headersTff7b72: Tb4b4b4{
Ta5d6ff"Content-Type"Tff7b72: Ta5d6ff"multipart/form-data"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_uploaded"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadSoundsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"sounds-changed"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3errorTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3errorTb4b4b4.Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_upload_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isUploading Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3value Tff7b72= Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3deleteSoundTb4b4b4(Te6edf3soundTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3confirmTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"common.delete_confirm"Tb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/notification-sounds/Tffd700${Te6edf3soundTb4b4b4.Te6edf3idTffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_deleted"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3playingSoundId Tff7b72=== Te6edf3soundTb4b4b4.Te6edf3idTb4b4b4) Tb4b4b4{
Te6edf3NotificationSoundUtilsTb4b4b4.Te6edf3stopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3playingSoundId Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadSoundsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"sounds-changed"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3errorTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_delete_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3setPrimarySoundTb4b4b4(Te6edf3soundTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/notification-sounds/Tffd700${Te6edf3soundTb4b4b4.Te6edf3idTffd700}Ta5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3is_primaryTff7b72: Tff7b72trueTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_primary_set"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3loadSoundsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3errorTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_primary_set_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3previewSoundTb4b4b4(Te6edf3soundTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3playingSoundId Tff7b72=== Te6edf3soundTb4b4b4.Te6edf3idTb4b4b4) Tb4b4b4{
Te6edf3NotificationSoundUtilsTb4b4b4.Te6edf3stopTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3playingSoundId Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}

Tff7b72const Te6edf3played Tff7b72= Tff7b72await Te6edf3NotificationSoundUtilsTb4b4b4.Te6edf3previewTb4b4b4(Te6edf3soundTb4b4b4.Te6edf3idTb4b4b4, Tff7b72thisTb4b4b4.Te6edf3configTb4b4b4.Te6edf3notification_sound_volume Tff7b72?? T79c0ff100Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3playedTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3playingSoundId Tff7b72= Te6edf3soundTb4b4b4.Te6edf3idTb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3ToastUtilsTb4b4b4.Te6edf3warningTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"app.notification_sound_preview_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────